

// 系统内置模块
let qs = require("querystring");
console.log(qs);

let url = "https://search.jd.com/Search?keyword=%E5%8D%8E%E4%B8%BAMeta60pro&enc=utf-8&wq=%E5%8D%8E%E4%B8%BA&pvid=f1a2395b1fcf4b93b3b4bf64144d3266"

/*
    querystring.parse(str [, sep[, eq[, options]]])  将参数数据队列解析为对象
    str 需要解析的字符串
    sep 可选参数(每条数据之间用...分隔 默认:&)  separate 分隔符
    eq  可选参数(健值对之间用什么分隔 默认: = )

*/
// var str = "user=张三&age=18&height=177&weight=65";
// var obj = qs.parse(str);
// console.log(obj);

// 设置分隔符
// var str = "user=张三; age=18; height=177; weight=65";
// var obj = qs.parse(str, "; ");
// console.log(obj);

// 设置分隔符
// var str = "user/张三; age/18; height/177; weight/65";
// var obj = qs.parse(str, "; ", "/");
// console.log(obj);


// var str = "user=%E5%8D%8E%E4%B8%BAMeta60pro&age=18&height=177&weight=65";
// var obj = qs.parse(str, "&", "=", {
//     decodeURIComponent: decodeURIComponent,  // 设置对中文编码进行解码的方法
//     maxKeys: 2,
// });
// console.log(obj);


/* 
    querystring.stringify(obj, separator, eq, options) (新版本: querystring.encode())

    stringify 这个方法是将一个对象序列化成一个字符串， 与 querystring.parse 相对。

    参数：

    obj 指需要序列化的对象

    separator（ 可省） 用于连接键值对的字符或字符串， 默认值为 "&";

    eq（ 可省） 用于连接键和值的字符或字符串， 默认值为 "=";

*/
/* var obj = {
    user: '张三',
    age: '18',
    height: '177',
    weight: '65'
}

var str = qs.stringify(obj, "&", "=");
console.log(str);
 */


// qs.escape   中文编码 等价于  encodeURIComponent
// qs.unescape   中文解码 等价于  decodeURIComponent

var str = "张三0123456789abcdef+-*/%?"

var result = qs.escape(str);
console.log(result);

var result = encodeURIComponent(str);
console.log(result);


var result = qs.unescape(result);
console.log(result);








